home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Amiga Format CD 36
/
Amiga Format CD36 (1999-01-22)(Future Publishing)(GB)[!][issue 1999-02].iso
/
-seriously_amiga-
/
comms
/
other
/
henry
/
docs
/
tutorial
< prev
next >
Wrap
Text File
|
1998-12-07
|
9KB
|
208 lines
Henry - Amiga IRC Bot
Short tutorial for beta versions
By
Rune Jacobsen
Contents
1. Introduction
2. Installation
3. Configuration
4. Running
================================================================================
Introduction
================================================================================
Ok, so this is not really a tutorial. But it explains stuff, so read it anyway.
================================================================================
Installation
================================================================================
There is a simple installation script provided with the beta distribution of
Henry. Double click on the "Install" icon to copy the unpacked directory to
somewhere. The installer script will create a "Henry"-directory in the place you
choose to install it in.
================================================================================
Configuration
================================================================================
One important thing to notice is that any line in any config file starting with
a '#' is treated as a comment and skipped by Henry. Keep that in mind, and edit
them files with any ASCII editor. As this is a relatively early beta of Henry,
be warned that the config reader isn't VERY robust and mangled config files will
give unexpected results.
1. Config/General
This file contains the general options for the Henry bot. Here is a quick
rundown - take a look at the sample General file in Config/Examples/ to
understand what the fields are referring to:
Servers
This is a list of servers to try to connect to, in order, with an optional
port number afterwards. If no port number is set, Henry will use the
default IRC port 6667.
Nicks
This is the list of nicknames the bot will try, in order.
UserName
The user name Henry sends to the server. Should normally be the user name
you have with your ISP (the part before the '@' in your email address).
RealName
The text that will be shown to users when they do a /whois on the bot.
FindServer
The ADT server to connect to for searching Aminet. find.germany.aminet.org
is a nice default one, as is ftp.wustl.edu when it is up.
Channel
The IRC channel the bot should join.
Signoff
The quit message the bot signs off with.
CommandChar
If the first character in a public message is this character, the rest
of the line will be taken to be a command to the bot.
PublicLogLineLength
The max. length of a line in the log.
Debug
If set to On, will save lots of debug info in Logs/Debug.log.
ShowPublic
Will send all public messages to STDOUT.
PublicLog
Will log all public message to Logs/YYMMDD_#Channel.log
PublicLogon
Will show the logon procedure in the public log. No real effect yet.
2. Config/Users
This file is Henry's user database. There is no other limit to the amount of
users than the amount of memory availible. The fields in this file represent:
Entry
The entry name. Should normally be the same as the persons nickname. This
is used if you do a SEEN (to see when the user was last on) or a ADDMSG (to
send a message to someone).
Access
This users access level on the bot. Is used to determine what commands the
user can execute and stuff. Can be from 0 to 255.
File
File access. Not yet used.
Seen
This is the last time the user was seen online by the bot. The number should
not really be edited manually.
News
The last time this user read news on the bot. This is used to determine
wether or not there are new ones for him/her to read.
Greet
The autogreet this user will recieve when joining the channel. If you don't
put anything here, the bot won't say a thing.
Mask
The host mask the user will be on. '*' is acceptable as a wildcard. For
instance, as my username at work is rune and I would log on from one of
Euroline's (my job) machines, a good host mask would be
*!*rune@*euroline.no - This would match any nickname I would use, wether
or not I am authenticated with identd, and would work on any computer
in the euroline.no network. You can have as many mask lines as you want,
useful for people with several accounts etc.
3. Config/Levels
Really simple file, this. Just some default levels.
AutoOp
The access level someone needs to be automatically given channel operator
status when they join. This will of course only happen if the bot is a
chanop himself.
DefaultLevel
The default level someone has when their host mask does not match anything
found in the user database.
DefaultFileLevel
Same as above, but for file access. No effect yet.
AutoRoulette
This has no effect yet, but those interested can guess what it is for.
4. Config/Commands
This defines the commands your bot users will be able to perform. This means
that every command in your bot is totally configurable, nothing is preset, and
everything has a reasonably cool level of custimization.
The attributes a command can have:
Command
This is the command name, what the users will have to type to execute the
command.
CommandString
This depends on the type of command. For internal commands, this is the
name of it. For ARexx scripts, this is the path/filename of the script. To
see what internal commands are availible, you have to check out the sample
Config/Examples/Commands file - it has them all in there somewhere.
InfoString
When someone requests help on a command (using the INFO internal command),
this is the description message they get.
SyntaxString
The syntax of the command, displayed by the INFO internal command.
Type
1 for internal command, 2 for ARexx command. Other command types are
currently not supported.
Access
The access level someone needs to execute this command. For instance,
the internal QUIT command should only be availible to people with
sufficient access to shut down the bot.
PublicAccess
Some Henry commands return results, and if this is the case, this is
used to determine if the result of the command should be public. If a
user has a HIGHER level than PublicAccess for this command, the result
will be displayed in public.
LogIllegal
TRUE or FALSE - should illegal attempts to execute this command be logged
in Logs/System.log ?
DataBaseName
Some commands are used for displaying, deleting or adding database items.
Since Henry supports unlimited number of databases, this field tells him
which of the databases this is related to. For instance, in the sample
Config/Examples/Commands file, both the "URL" and the "FAQ" commands
use the internal FINDDBITEM command, but they point to different
databases. The databases are defined in the Config/Databases file,
explained later in this section.
5. Config/Messages
This file just keeps the messages for the different users. It should not be
edited manually, and probably not read by evil bot operators ;). Should be
encrypted or something in the future.
6. Config/Databases
Again, a very simple file, with a very simple format. On each line, one
database, a colon, a space, and the name of the database file. For instance:
FAQ: FAQ.hdb
Would mean a database called FAQ is located in FAQ.hdb. You can have as many
databases as you want.
The format of the database files (*.hdb) is also simple. One item on one line,
in this format:
Name: Item text.
The item text can be as long as you want. For instance, an item in a FAQ
database could be like this:
Henry: Amiga IRC Bot by Rune 'Shitlips' Jacobsen
This item would then be displayed when someone gave the command "FAQ Henry" to
the bot, provided that FAQ is the internal command FINDDBITEM, pointing to the
FAQ database.
7. Config/NewsDB
Another file you shouldn't mess with manually. It keeps all the unexpired news
items.
================================================================================
Running
================================================================================
Start Henry from a shell or the Workbench. After a little bit it should either
pop up on the IRC channel you've configured, or complain that something is
wrong.